package pruebas;
import modelo.auto.*;
import modelo.excepciones.InvalidPointValueException;
import modelo.juego.Usuario;
import junit.framework.*;

public class TestUsuario extends TestCase {
	Usuario usr;
	final static double dineroInicial = Double.MAX_VALUE;
	final static int puntosIniciales = 50;
	protected void setUp() throws Exception {
		Auto auto = new Auto();
		usr= new Usuario("pepe", dineroInicial, puntosIniciales, auto);
		//usr.setNombre("pepe");
		//usr.setDinero(dineroInicial);
		//usr.setPuntos(puntosIniciales);

	}

	public void testGetNombre() {
		assertEquals("pepe", usr.getNombre());
	}

	public void testSetNombre() {
		String nuevoNombre= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
		usr.setNombre(nuevoNombre);
		String actual= usr.getNombre();
		Assert.assertEquals(nuevoNombre, actual);
	}

	public void testGetDinero() {
		assertEquals(dineroInicial,  usr.getDinero());
	}

	public void testSetDinero() {
		Double esperado = dineroInicial + Double.MAX_VALUE;
		
		usr.setDinero(esperado);
		assertEquals(2*Double.MAX_VALUE,usr.getDinero());
		

	}

	public void testGetPuntos() {
		assertEquals(puntosIniciales, usr.getPuntos());
	}

	public void testSetPuntos() {
		int nuevosPuntos = -1;
		try{
			usr.setPuntos(nuevosPuntos);
			fail("no se genero la excepcion");
		}
		catch (InvalidPointValueException e){
			
		}


	}



	public void testSetAuto() {
		Auto auto = new Auto();
		usr.setAuto(auto);
		assertEquals(auto, usr.getAuto());
	}

	public void testActualizar() {
		//fail("No esta implementado en usuario todavia");
	}

}
